package com.itx.gatewayx.domain.dto;

import com.itx.gatewayx.domain.AIMessage;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.List;

/**
 * AI对话请求DTO
 */
@Data
public class AIChatRequest {
    
    /**
     * 用户消息内容
     */
    @NotBlank(message = "消息内容不能为空")
    @Size(max = 2000, message = "消息内容不能超过2000个字符")
    private String message;
    
    /**
     * 会话ID（可选，如果为空则创建新会话）
     */
    private Long conversationId;
    
    /**
     * 模型ID（可选，如果为空则使用默认模型）
     */
    private String modelId;
    
    /**
     * 用户认证令牌（可选，WebSocket连接时使用）
     */
    private String token;
    
    /**
     * 历史消息（可选，如果为空则从数据库获取）
     */
    private List<AIMessage> history;
} 